﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using GameSchool.Models;
using GameSchool.Models.AccountModels;

namespace GameSchool.DAL
{
    public interface IProjectRepository : IDisposable
    {
        // Nánari upplýsingar um hvernig Repository patternið virkar er á:
        // http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application

        List<Project> GetProject();
       
        Course GetCourseById(int courseId);
        Project GetProjectById(int projectId);
        List<ProjectReturns> GetProjectReturnsByProject(int courseId);
        void InsertProjectWithGrade(ProjectReturns projectReturn);
        void InsertProject(Project project);
        void InsertProjectReturns(ProjectReturns projectReturn);
        ProjectReturns GetProjectReturnsByProjectReturnId(int projectReturnId);
        void DeleteProject(int projectId);
        void UpdateProject(Project project);
        List<vProjectsStudents> GetProjectsStudents(int courseId);
        List<vProjectsStudents> GetProjectsStudents(int courseId, Guid studentUserId);
        List<vProjectsTeacher> GetProjectsTeacher(int courseId, Guid studentUserId);
        void Save();
        
    }
}
